Often times a machine tool program is written as an NC program expressed in a standard G&M code language, or a close derivative of this language based on either the International Standards Organization (ISO) or the Electronics Industries Association (EIA) RS-274-D, using codes identified by letters such as G, M, and F. The codes define a sequence of machining operations to control motion of the machine tool in the manufacture of a part.
Hurco Companies, Inc., the assignee of the present application, has offered a conversational style programming suite whereby a machine tool operator is able to program a machine tool mill or lathe system to perform various operations through a graphical user interface. The conversational style programming suite provides a feature based approach that allows an operator to define the geometry of a part. An exemplary software package and user interface is the WINMAX brand system available from Hurco Companies, Inc. One exemplary conversational programming system is disclosed in U.S. Pat. No. 5,453,933, the disclosure of which is expressly incorporated by reference herein.
Referring to FIG. 1, in the prior art Hurco system, an operator through a user interface specifies parameters for a plurality of conversational blocks which define feature geometry, as represented by block 2. Referring to FIG. 2, a given conversational block 12 includes one or more operations 14; illustratively operations 16, 18, and 20 are shown.
Referring to FIG. 3, each operation 14 specifies geometry information 22, tool information 24, speed information 26, peck information 28, and surface finish information 30. Geometry information specifies the desired geometry to create on the part, such as location of a hole and depth of a hole. Tool information 24 specifies the tool to be used to create the geometry. Speed information 26 specifies spindle rotational speed. Peck information 28 specifies maximum depth to cut for a specified tool.
Conversational block 42 is a frame block. Frame blocks specify a rectangular shape with or without a corner radius. The operator specifies the type of machine operation to be performed on the frame and the tools required for the machining. Frame block 42 includes a roughing operation 50 and a finishing operation 52. It is noted in FIG. 4, that roughing operation 50 is to use Tool 1 and that finishing operation 52 is to use Tool 3. Conversational block 44 is a circle block. Circle blocks specify a circular shape to be machined. The operator specifies the radius of the circle, the type of machining operation to be performed, and the tools required for the machining. Circle block 44 includes a roughing operation 54 and a finishing operation 56. It is noted in FIG. 4, that roughing operation 54 is to use Tool 1 and that finishing operation 56 is to use Tool 2. Conversational block 46 is a contour block. Contour blocks specify a series of line and arc segments. The operator specifies the type of machining operation to be performed and the tools required for the machining. Contour block 46 includes a roughing operation 58 and a finishing operation 60. It is noted in FIG. 4, that roughing operation 58 is to use Tool 1 and that finishing operation 60 is to use Tool 3. Conversational block 48 is a pattern block. Pattern blocks specify the number of instances and locations for at least one other block. For example, if an operator wanted to specify a plurality of holes for the part, the operator may specify the geometry of an instance of the hole through one or more conversational blocks and then with a pattern block create multiple instances of the geometry of the hole at various locations on the part. In connection with pattern block 48, three instances of the frame block 42, the circle block 44, and the contour block 46 are to be created. Blocks 42, 44, and 46 are nested within pattern block 48. It is possible to have multiple layers of nesting, such as a pattern block within a pattern.
Returning to FIG. 1, the machine tool control software takes the plurality of conversational blocks specified by the operator and generates a working set from the plurality of conversational blocks, as represented by block 4. The working set consists of breaking all of the operations out into a program sequence. The working set is converted by the machine tool control software into a tool path based on the geometry specified in each block of the working set. The tool path is then used to control the relative movement of a machine tool and a part being machined.
An exemplary working set 70 is shown FIG. 5. Referring to FIG. 5, each roughing operation and finishing operation is broken out and the operations are repeated for the patterned features. As mentioned at the bottom of FIG. 5, this results in seventeen tool changes. These tool changes take extra time in the machining of the part.
A need exists for reducing the number of tool changes in a defined part program to reduce cycle time. A defined part program is defined as a program which includes instructions that specify the tool path of a machine tool apparatus and instructions that specify which tool to use for each portion of the tool path. The defined part program may be generated through a conversational programming interface, such as described above, an NC program programming interface, or any other programming interface by which the parameters of a defined part program are specified. The working set of FIG. 5 is one example of a defined part program.